=[11,22]
a a
[11, 22]
김보람
March 14, 2022
-
리스트의 선언
-
비어있는 리스트의 선언
-
더하기연산
-
브로드캐스팅과 같이 R에서는 당연히 가능했던 기능을 사용할 수 없음
-
뺄셈은 정의되지 않음
-
곱하기는 정의 가능
-
나눗셈은 정의되지 않음
-
더하기와 곱하기는 원소의 추가와 반복추가를 의미하지만 그렇다고 해서 뺄샘과 나눗셈이 원소의 삭제를 의미하는 것은 아님
-
더하기와 곱하기가 원소의 추가와 반복추가를 의미하여 편리할때도 있긴하지만, 우리는 산술적인 +
, *
를 원하는 경우도 있다. 이럴 경우는 어떻게 할 수 있을까?
(예제)
a+b=[4,6]이 되도록 하려면?
(풀이1)
풀이가 가능한 이유? a,b는 리스트이지만 a[0], a[1], b[0], b[1]은 각각 인트형임. 인트형은 +연산이 가능함
(풀이2)
numpy패키지 (파이썬의 여러 수치연산들을 담당하는 라이브러리) - 이러한 벡터연산은 누구나 필요로 하는 연산 - 내가 아니더라도 누군가가 프로그램화 해놓았을 것임 - 그 누군가가 자신이 만든 코드를 잘 정리하여 무료로 배포했을 수도 있음 (패키지를 배포한다고 표현) - 그 패키지를 가져와서 설치한 뒤 사용하기만 하면 된다.
패키지를 설치하는 방법 - !pip install numpy
# 최신버전을 설치함 - !conda install -c conda-forge numpy -y
# 안전한 버전을 설치함
설치된 패키지를 사용하는 방법 - import numpy
한뒤에 numpy.??
로 기능을 사용 - import numpy as np
한뒤에 np.??
로 기능을 사용
파이썬의 기본 패키지 numpy pandas matplotlib
Requirement already satisfied: numpy in c:\users\user\anaconda3\lib\site-packages (1.21.5)
이런것도 가능
(풀이3)
-
str형과 동일한 방식
-
객체 - Object - Something
-
리스트의 원소는 int, float따위만 가능한 것이 아니다. (리스트는 콘테이너형 객체이므로)
각 원소의 타입을 알아보자
-
str은 컨테이너형이 아니다
-
리스트의 원소를 수정할 수 있다. (리스트는 가변객체이므로)
-
원소수정은 당연한 기능 같은데 이것이 불가능한 경우도 있다.
(가능한경우)
(불가능한경우)
-
리스트 원소 삭제
(예제)
아래와 같이 문자로 된 리스트를 선언하자.
사실 더 쉽게 선언할 수 있음
첫 번째 원소를 삭제하고 싶다면?
-
리스트의 원소 추가
(예제) 비어있는 리스틀를 만들고 원소 0,1,2 를 차례로 추가하여 보자.
(풀이1)
(풀이2)
(풀이3) 리스트 특화기능(=메소드)를 이용
-
a+[4]
와 a.append(4)
의 차이점은?
(관찰1)
(관찰2)
비슷해보이지만 굉장히 미묘한 차이가 있음
a.append(4)
: a
에 4를 append하라 \(\to\) a
가 변함
a+[4]
: a
와 4를 연산하고 수행결과를 보여달라
(append)
(clear)
(copy)
(count)
(extend)
(index)
(insert)
(pop)
(remove)
(reverse)
(sort)
(다른예제들)
-
A는 아래와 같은 매트릭스로 이해할 수 있다.
$
-
A에서 (2,1)의 원소를 뽑고 싶다. = 1을 뽑고싶다.
성고의 이유를 분석해 보자.
-
매트릭스는 아니지만 매트릭스 같음! - 1차원 배열을 다차원 배열로 확장할 수 있는 기본 아이디어를 제공함
-
리스트 컴프리헨션을 이해하기 전에 for문에 대하여 알아보자.
[예비학습] for
문 벼락치기
프로그램안에서 반복해서 무언가를 하고싶다 \(\to\) for
(예제) 1,2,3,4의 합을 for문을 이용하여 구해보자.
-
예제: $ 2^0, 2^1, 2^2, 2^3$ 를 원소로 가지는 리스트를 생성
(풀이1)
(풀이2) for문을 이용
(풀이3) for문을 이용
(풀이4) for문을 이용
(풀이5) 리스트컴프리헨션을 이용한 풀이
-
리스트컴프리헨션의 문법 암기방법 - 집합에서 조건제시법을 연상 - 원소나열법, 조건제시법 - \(\{2^0, 2^1, 2^2, 2^3\} = \{2^i: \text{for} i \in \{0,1,2,3\}\)
-
리스트컴프리헨션이란? - 리스트를 매우 효율적으로 만드는 테크닉 - for문에 비하여 가지고 있는 장점 : 1. 코드가 간결하다. 2, 빠르다
-
예제: 리스트 컴프리헨션을 이용하여 아래와 같은 리스트를 만들자.
(풀이)
-
예제: 리스트 컴프리헨션을 이용하여 아래와 같은 리스트를 만들자.
-
예제: 리스트 컴프리헨션을 이용하여 아래와 같은 리스트를 만들자.
(풀이)
-
예제: 리스트 컴프리헨션을 이용하여 통계1,,..,통계5,수학1,…,수학5를 만들어라
(풀이)
['stat1',
'stat2',
'stat3',
'stat4',
'stat5',
'math1',
'math2',
'math3',
'math4',
'math5']
(다른풀이) 참고로 for문을 쓰면 좀 복잡해진다.
-
예제: ’jbnu’를 이용하여 아래와 같은 리스트르 만들어라.
(풀이)
-
예제: x에는 무엇이 있을까?
(경우1)
(경우2)
-
예제: [X1,X2,X3,…,X100]과 같은 리스트를 만들어보자.
(풀이)
[예비학습]
예비학습 끝
['X1',
'X2',
'X3',
'X4',
'X5',
'X6',
'X7',
'X8',
'X9',
'X10',
'X11',
'X12',
'X13',
'X14',
'X15',
'X16',
'X17',
'X18',
'X19',
'X20',
'X21',
'X22',
'X23',
'X24',
'X25',
'X26',
'X27',
'X28',
'X29',
'X30',
'X31',
'X32',
'X33',
'X34',
'X35',
'X36',
'X37',
'X38',
'X39',
'X40',
'X41',
'X42',
'X43',
'X44',
'X45',
'X46',
'X47',
'X48',
'X49',
'X50',
'X51',
'X52',
'X53',
'X54',
'X55',
'X56',
'X57',
'X58',
'X59',
'X60',
'X61',
'X62',
'X63',
'X64',
'X65',
'X66',
'X67',
'X68',
'X69',
'X70',
'X71',
'X72',
'X73',
'X74',
'X75',
'X76',
'X77',
'X78',
'X79',
'X80',
'X81',
'X82',
'X83',
'X84',
'X85',
'X86',
'X87',
'X88',
'X89',
'X90',
'X91',
'X92',
'X93',
'X94',
'X95',
'X96',
'X97',
'X98',
'X99',
'X100']
(아래와 같은 풀이도 가능)
['X1', 'X2', 'X3', 'X4', 'X5', 'X6', 'X7', 'X8', 'X9', 'X10', 'X11', 'X12']
(딴생각) for문 뒤에 올 수 있는 것이 무엇인지 생각해보자.
(숙제)
리스트컴프리헨션을 이용하여 아래와 같은 리스트를 만들어라
[‘X1’,‘X2X2’,‘X3X3X3’,‘X4X4X4X4’,‘X5X5X5X5X5’]